var pageSize = 10;
var currPage = 1;
var itemCount = 0;
var href = null;
var modelname;
var methodname;
//自定义日期字段，在字段列表中的属性自动从 timestamp 长整形转换为日期格式
var dateCol = new Array('birthday', 'jointime');
$(function() {
	showPage(1, pageSize);//初始调用第一页

	function showPage(currPage, pageSize) {
		modelname = $('#modelname').val();
		methodname = $('#methodname').val();
		//alert(currPage);
		$
				.ajax({

					url : modelname+'/'+methodname+'/' + currPage + '/'
							+ pageSize + '',
					type : 'post',
					data : {}, //提交给服务器的参数
					dataType : 'json', //返回值类型,服务器out对象输出的内容
					success : function(objs) { //回调函数 ，服务器有返回输出的时候调用的函数
						//alert(students);
						//获取有字段名的隐藏td的数量，初始化一个数组
						var size = $('.firstTr > td').size() - 2;
						//alert(size);
						var colnames = new Array(size);

						//找出这些td alt保存的属性名，一次存放到数组中
						$('.firstTr > td:lt(' + size + ')').each(
								function(i, td) {
									colnames[i] = $(td).attr('alt');
								});
						//在数组中查找 和传入的字段名 相等的元素，找到了就返回索引
						function getIndex(colname) {
							for (var j = 0; j < colnames.length; j++) {
								//alert(colname+ ' '+ colnames[j]);
								if (colnames[j] == colname) {
									return j;
								}
							}
							return -1;
						}

						var trTemp = $('.firstTr').html();
						var students = objs[0];
						var pageInfo = objs[1];
						$('.pageTable').append(
								$('.tempTab > thead').clone());
						//循环的就是对象一行
						$(students)
								.each(
										function(i, student) {
										
											var $newTr = $('<tr class="normalTr"></tr>');
											$newTr.html(trTemp);
											//将对象 中的每一对 key 和value循环出，填入到新生成的对应的tr中的td
											for ( var colname in student) {
												//alert(key + " " + student[key]);
												var index = getIndex(colname);//将循环获得的字段名输入数组查找索引
												//alert(index);
												//如果不在日期列表中 直接输出值，在日期列表中格式化后输出
												if (!isDate(colname)) {
													$newTr.children('td').eq(
															index).html(
															student[colname]);
												} else {
													$newTr
															.children('td')
															.eq(index)
															.html(
																	getNowFormatDate(student[colname]));
												}
											}
											//alert($newTr.html());
											//将模板表格中的表头 和循环生成的内容追加到 实际表格
											//alert($('.tempTab > thead').html());
											
										
											$('.pageTable').append($newTr);

										});
						itemCount = pageInfo.itemCount;
						pageCount = pageInfo.pageCount;
						initPagelib();
					}
				});

	}
	//初始化 分页标签
	function initPagelib() {
		var pageCount = 0;

		pageCount = parseInt(itemCount / pageSize);
		if (itemCount == 0 || pageSize == 0) {
			return false;
		}
		if (itemCount % pageSize != 0) {
			pageCount = pageCount + 1;
		}
		if (pageCount <= 1) {
			return false;
		}

		var navigation = '<ul class="pageUl">';
		navigation += "<li alt='-1'><a>第" + currPage + "页/共" + pageCount
				+ "页</a></li>";
		if (currPage <= 1) {
			navigation += "<li alt='-1' class='unclick'>首页</li>";
			navigation += "<li alt='-1' class='unclick'>上一页</li>";
		} else {
			navigation += "<li alt='1'>首页</li>";
			navigation += "&nbsp;";
			navigation += "<li alt='" + (currPage - 1) + "'>上一页</li>";
		}
		navigation += "&nbsp;";
		if (currPage >= pageCount) {
			navigation += "<li alt='-1' class='unclick'>下一页</li>";
			navigation += "&nbsp;";
			navigation += "<li alt='-1' class='unclick'>尾页</li>";
		} else {
			navigation += "<li alt='" + (currPage + 1) + "'>下一页</li>";
			navigation += "&nbsp;";
			navigation += "<li alt='" + pageCount + "'>尾页&nbsp;</li>";
		}
		navigation += "</ul>"

		$('.pagePane').append(navigation);
		//不能点击的li颜色不同
		$('.unclick').css('color', 'green');

		//给生成的li添加点击时间

		$('.pageUl > li').click(function() {
			currPage = parseInt($(this).attr('alt'));
			if (currPage != '-1') {
				$('.pageTable').html('');//清空上一次的结果
				$('.pagePane').html('');//清空上一次的分页标签
				showPage(currPage, pageSize);
			}
		});

	}
	//判断是不是日期型,字段名出现在日期型字段数组中，即为日期型
	function isDate(colname) {
		for ( var i in dateCol) {
			if (colname == dateCol[i]) {
				return true;
			}
		}
		return false;
	}

});